/**
 * Created by shitao on 15/10/17.
 */
(function () {

    // 创建angular工厂对象
    angular.module('my-tabs.apis')
        .factory('api', api);

    /**
     * 数据接口路径对象。
     *
     * @returns 对象, 接口路径对象
     */
    function api() {
        // 模拟开关
        var mock = true;
        api.ROOT_URL = "http://localhost:8080/mobile"; //测试环境


        // 模拟数据URL
        if (mock) {
            return {
                /****************
                 * 用户接口 URLs *
                 ****************/
                USER_PROFILE:          'mock/my-profile.json',
                USER_LOGIN_VALIDATION: 'mock/auth-login.json',

                /****************
                 * 应用接口 URLs *
                 ****************/
                APPS: 'mock/apps.json',
                APPS_DEFAULT: 'mock/apps-default.json',
                ADS: 'mock/ads.json'
            };
        }
        // 真实数据URL
        else {
            return {

            };
        }
    };
})();

/**
 * Created by shitao on 15/10/17.
 */
(function () {

    // 创建angular工厂对象
    angular.module('my-tabs.apis')
        .factory('appApi', appApi);
    // 申明依赖
    appApi.$inject = ['api', '$http'];

    /**
     * 用户接口。
     *
     * @param api 对象，数据接口URL
     * @returns 对象，用户接口
     */
    function appApi(api, $http) {

        var appApi = {
            getApps: getApps,
            getDefaultApps: getDefaultApps,
            getAds: getAds,
        }

        /**
         * 根据用户Id获取该用户应用列表。
         *
         * @param userId 字符串，用户Id
         */
        function getApps(userId) {
            return $http.get(api.APPS.replace('{userId}', userId));
        };

        /**
         * 获取默认的应用列表
         *
         * @returns {*} 应用列表
         */
        function getDefaultApps() {
            return $http.get(api.APPS_DEFAULT);
        };

        /**
         * 获取广告列表。
         *
         * @returns {*} 广告列表
         */
        function getAds() {
            return $http.get(api.ADS);
        };

        return appApi;
    };
})();
